[INFO] cloning repository https://github.com/Ruddle/oxidator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ruddle/oxidator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRuddle%2Foxidator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRuddle%2Foxidator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ba77b3419a1c285fb6c63b2590bf138ce3ab661d
[INFO] building Ruddle/oxidator against master#ff34b919075f35a1787659e9c448a34b06bab8de for issue-85264
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRuddle%2Foxidator" "/workspace/builds/worker-14/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Ruddle/oxidator on toolchain ff34b919075f35a1787659e9c448a34b06bab8de
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Ruddle/oxidator
[INFO] finished tweaking git repo https://github.com/Ruddle/oxidator
[INFO] tweaked toml for git repo https://github.com/Ruddle/oxidator written to /workspace/builds/worker-14/source/Cargo.toml
[INFO] crate git repo https://github.com/Ruddle/oxidator already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 753f8674700680675be8d76ddd80b0a8e66aaae069d3c4fe8b7f9327ba743bcd
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "753f8674700680675be8d76ddd80b0a8e66aaae069d3c4fe8b7f9327ba743bcd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "753f8674700680675be8d76ddd80b0a8e66aaae069d3c4fe8b7f9327ba743bcd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "753f8674700680675be8d76ddd80b0a8e66aaae069d3c4fe8b7f9327ba743bcd", kill_on_drop: false }`
[INFO] [stdout] 753f8674700680675be8d76ddd80b0a8e66aaae069d3c4fe8b7f9327ba743bcd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a511d1a2d7c7ab05f55831385408049d287addced0ded0c18d5d613bed7dfa66
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "a511d1a2d7c7ab05f55831385408049d287addced0ded0c18d5d613bed7dfa66", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.67
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.8
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling syn v1.0.15
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling scopeguard v1.1.0
[INFO] [stderr]    Compiling serde v1.0.104
[INFO] [stderr]    Compiling arrayvec v0.5.1
[INFO] [stderr]    Compiling rayon-core v1.7.0
[INFO] [stderr]    Compiling downcast-rs v1.1.1
[INFO] [stderr]    Compiling atom v0.3.5
[INFO] [stderr]    Compiling failure_derive v0.1.6
[INFO] [stderr]    Compiling typenum v1.11.2
[INFO] [stderr]    Compiling stable_deref_trait v1.1.1
[INFO] [stderr]    Compiling libm v0.1.4
[INFO] [stderr]    Compiling colorful v0.2.1
[INFO] [stderr]    Compiling ryu v1.0.2
[INFO] [stderr]    Compiling scoped_threadpool v0.1.9
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling copyless v0.1.4
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling termcolor v1.1.0
[INFO] [stderr]    Compiling itoa v0.4.5
[INFO] [stderr]    Compiling anymap v0.12.1
[INFO] [stderr]    Compiling spin_sleep v0.3.7
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling num-iter v0.1.40
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-rational v0.2.3
[INFO] [stderr]    Compiling backtrace-sys v0.1.32
[INFO] [stderr]    Compiling x11 v2.18.2
[INFO] [stderr]    Compiling imgui-sys v0.2.0
[INFO] [stderr]    Compiling x11-dl v2.18.5
[INFO] [stderr]    Compiling inflate v0.3.4
[INFO] [stderr]    Compiling gif v0.9.2
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling crossbeam-utils v0.6.6
[INFO] [stderr]    Compiling thread_local v1.0.1
[INFO] [stderr]    Compiling owning_ref v0.3.3
[INFO] [stderr]    Compiling matrixmultiply v0.2.3
[INFO] [stderr]    Compiling hibitset v0.6.3
[INFO] [stderr]    Compiling lock_api v0.3.3
[INFO] [stderr]    Compiling humantime v1.3.0
[INFO] [stderr]    Compiling smallvec v0.6.13
[INFO] [stderr]    Compiling aho-corasick v0.7.8
[INFO] [stderr]    Compiling approx v0.3.2
[INFO] [stderr]    Compiling ordered-float v1.0.2
[INFO] [stderr]    Compiling line_drawing v0.7.0
[INFO] [stderr]    Compiling enum_primitive v0.1.1
[INFO] [stderr]    Compiling crossbeam-channel v0.3.9
[INFO] [stderr]    Compiling relevant v0.4.2
[INFO] [stderr]    Compiling dlib v0.4.1
[INFO] [stderr]    Compiling wayland-sys v0.23.6
[INFO] [stderr]    Compiling raw-window-handle v0.3.3
[INFO] [stderr]    Compiling net2 v0.2.33
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]    Compiling parking_lot_core v0.6.2
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling num_cpus v1.12.0
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling shared_library v0.1.9
[INFO] [stderr]    Compiling memmap v0.7.0
[INFO] [stderr]    Compiling inotify-sys v0.1.3
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling filetime v0.2.8
[INFO] [stderr]    Compiling rand v0.5.6
[INFO] [stderr]    Compiling flate2 v1.0.13
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling num-rational v0.1.42
[INFO] [stderr]    Compiling crossbeam-queue v0.2.1
[INFO] [stderr]    Compiling gfx-hal v0.4.1
[INFO] [stderr]    Compiling inotify v0.7.0
[INFO] [stderr]    Compiling ash v0.29.0
[INFO] [stderr]    Compiling mio v0.6.21
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling backtrace v0.3.44
[INFO] [stderr]    Compiling stb_truetype v0.3.1
[INFO] [stderr]    Compiling deflate v0.7.20
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]    Compiling rand_chacha v0.2.1
[INFO] [stderr]    Compiling regex v1.3.4
[INFO] [stderr]    Compiling wayland-scanner v0.23.6
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling crossbeam-deque v0.7.3
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling rusttype v0.8.2
[INFO] [stderr]    Compiling parking_lot_core v0.2.14
[INFO] [stderr]    Compiling generic-array v0.13.2
[INFO] [stderr]    Compiling png v0.11.0
[INFO] [stderr]    Compiling png v0.15.3
[INFO] [stderr]    Compiling mio-extras v2.0.6
[INFO] [stderr]    Compiling parking_lot v0.4.8
[INFO] [stderr]    Compiling rusttype v0.7.9
[INFO] [stderr]    Compiling andrew v0.2.1
[INFO] [stderr]    Compiling chashmap v2.2.2
[INFO] [stderr]    Compiling rayon v1.3.0
[INFO] [stderr]    Compiling notify v5.0.0-pre.1
[INFO] [stderr]    Compiling env_logger v0.7.1
[INFO] [stderr]    Compiling rand_distr v0.2.2
[INFO] [stderr]    Compiling wayland-client v0.23.6
[INFO] [stderr]    Compiling wayland-protocols v0.23.6
[INFO] [stderr]    Compiling gfx-backend-empty v0.4.0
[INFO] [stderr]    Compiling rendy-memory v0.5.2
[INFO] [stderr]    Compiling rendy-descriptor v0.5.1
[INFO] [stderr]    Compiling synstructure v0.10.2
[INFO] [stderr]    Compiling wayland-commons v0.23.6
[INFO] [stderr]    Compiling calloop v0.4.4
[INFO] [stderr]    Compiling jpeg-decoder v0.1.18
[INFO] [stderr]    Compiling image v0.18.0
[INFO] [stderr]    Compiling zerocopy-derive v0.1.4
[INFO] [stderr]    Compiling synstructure v0.12.3
[INFO] [stderr]    Compiling zerocopy v0.2.8
[INFO] [stderr]    Compiling imgui v0.2.1
[INFO] [stderr]    Compiling serde_derive v1.0.104
[INFO] [stderr]    Compiling typename_derive v0.1.4
[INFO] [stderr]    Compiling gfx-backend-vulkan v0.4.2
[INFO] [stderr]    Compiling noise v0.6.0
[INFO] [stderr]    Compiling typename v0.1.2
[INFO] [stderr]    Compiling failure v0.1.6
[INFO] [stderr]    Compiling base-62 v0.1.1
[INFO] [stderr]    Compiling wgpu-native v0.4.3
[INFO] [stderr]    Compiling smithay-client-toolkit v0.6.6
[INFO] [stderr]    Compiling winit v0.20.0-alpha4
[INFO] [stderr]    Compiling imgui-winit-support v0.2.1
[INFO] [stderr]    Compiling serde_json v1.0.48
[INFO] [stderr]    Compiling bincode v1.2.1
[INFO] [stderr]    Compiling wgpu v0.4.0
[INFO] [stderr]    Compiling num v0.2.1
[INFO] [stderr]    Compiling alga v0.9.2
[INFO] [stderr]    Compiling obj-rs v0.5.0
[INFO] [stderr]    Compiling nalgebra v0.19.0
[INFO] [stderr]    Compiling oxidator v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Vector4`
[INFO] [stdout]  --> src/client/mod.rs:3:56
[INFO] [stdout]   |
[INFO] [stdout] 3 | use na::{Isometry3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |                                                        ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::botdef`
[INFO] [stdout]  --> src/client/game_state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::botdef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/client/unit_part_gpu.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/client/unit_part_gpu.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model::*`
[INFO] [stdout]  --> src/client/unit_editor.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gpu_obj::model_gpu::ModelGpu`
[INFO] [stdout]  --> src/client/unit_editor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use gpu_obj::model_gpu::ModelGpu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2`
[INFO] [stdout]  --> src/client/unit_editor.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use na::{Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap`, `HashSet`
[INFO] [stdout]  --> src/client/unit_editor.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/client/unit_editor.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]    --> src/client/unit_editor.rs:228:23
[INFO] [stdout]     |
[INFO] [stdout] 228 |         use std::io::{BufReader, BufWriter};
[INFO] [stdout]     |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufWriter`
[INFO] [stdout]    --> src/client/unit_editor.rs:244:34
[INFO] [stdout]     |
[INFO] [stdout] 244 |         use std::io::{BufReader, BufWriter};
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]    --> src/client/heightmap_editor.rs:328:13
[INFO] [stdout]     |
[INFO] [stdout] 328 |         use std::io::BufReader;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/client/misc.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/client/misc.rs:159:25
[INFO] [stdout]     |
[INFO] [stdout] 159 |                         (t * 2.0),
[INFO] [stdout]     |                         ^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::botdef`
[INFO] [stdout]  --> src/client/play.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::botdef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `imgui::*`
[INFO] [stdout]  --> src/client/play.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use imgui::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Isometry3`, `Vector2`, `Vector4`
[INFO] [stdout]  --> src/client/play.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | use na::{Isometry3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^                   ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration`, `Instant`
[INFO] [stdout]   --> src/client/play.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::frame::Player`
[INFO] [stdout]  --> src/client/render.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::frame::Player;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IsometryMatrix3`, `Matrix4`, `Vector2`, `Vector4`
[INFO] [stdout]  --> src/client/render.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | use na::{IsometryMatrix3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^  ^^^^^^^          ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/client/render.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unit_part_gpu::UnitPartGpu`
[INFO] [stdout]   --> src/client/render.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use unit_part_gpu::UnitPartGpu;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/client/mod.rs:34:24
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> src/client/mod.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/client/mod.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferMapAsyncResult`, `Extent3d`, `SwapChain`
[INFO] [stdout]   --> src/client/mod.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | use wgpu::{BufferMapAsyncResult, Extent3d, SwapChain, TextureFormat};
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/client/mod.rs:154:10
[INFO] [stdout]     |
[INFO] [stdout] 154 |     ) -> (Self) {
[INFO] [stdout]     |          ^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `unbounded` is imported redundantly
[INFO] [stdout]    --> src/client/mod.rs:436:17
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::*;
[INFO] [stdout]     |     -------- the item `unbounded` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 436 |             use crossbeam_channel::unbounded;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]    --> src/client/mod.rs:437:50
[INFO] [stdout]     |
[INFO] [stdout] 437 |             use notify::{watcher, RecursiveMode, Result};
[INFO] [stdout]     |                                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/client/mod.rs:608:9
[INFO] [stdout]     |
[INFO] [stdout] 608 |         (this)
[INFO] [stdout]     |         ^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/client/mod.rs:927:25
[INFO] [stdout]     |
[INFO] [stdout] 927 |                     for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Point3`
[INFO] [stdout]   --> src/frame.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | use na::{Point3, Vector3};
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]   --> src/frame.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::unit;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4`
[INFO] [stdout]  --> src/frame_server/mod.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | use na::{Matrix4, Point3, Vector2, Vector3};
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/frame_server/mod.rs:393:25
[INFO] [stdout]     |
[INFO] [stdout] 393 |                         'bot_test: for kbot_id in kbots_in_proximity.iter() {
[INFO] [stdout]     |                         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/frame_server/mod.rs:452:10
[INFO] [stdout]     |
[INFO] [stdout] 452 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]  --> src/glsl.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::slice;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/arrow_gpu.rs:45:95
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/blit_texture.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/explosion.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt`
[INFO] [stdout]    --> src/gpu_obj/explosion.rs:312:25
[INFO] [stdout]     |
[INFO] [stdout] 312 |         use byteorder::{BigEndian, ReadBytesExt};
[INFO] [stdout]     |                         ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]   --> src/gpu_obj/glsl_compiler.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::slice;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/health_bar.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/line.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/line.rs:29:95
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/model_gpu.rs:46:95
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BindGroup`, `RenderPass`
[INFO] [stdout]  --> src/gpu_obj/trait_gpu.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use wgpu::{BindGroup, BindGroupLayout, RenderPass, TextureFormat};
[INFO] [stdout]   |            ^^^^^^^^^                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/unit_icon.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/unit_icon.rs:29:95
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/water.rs:62:27
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 .unwrap();;
[INFO] [stdout]    |                           ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]  --> src/mobile.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::unit;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf`, `Path`
[INFO] [stdout]  --> src/mobile.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/mobile.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let diff = (other - self);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]  --> src/moddef.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::unit;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]  --> src/net_client.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]  --> src/net_client.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::BufReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpListener`
[INFO] [stdout]  --> src/net_client.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::TcpListener;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::client::*`
[INFO] [stdout]  --> src/unit.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::client::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model::*`
[INFO] [stdout]  --> src/unit.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::FileTree`
[INFO] [stdout]  --> src/unit.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::FileTree;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gpu_obj::model_gpu::ModelGpu`
[INFO] [stdout]  --> src/unit.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use gpu_obj::model_gpu::ModelGpu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vector2`, `Vector3`
[INFO] [stdout]  --> src/unit.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use na::{Matrix4, Point3, Vector2, Vector3};
[INFO] [stdout]   |                           ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap`, `HashSet`
[INFO] [stdout]  --> src/unit.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/unit.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IsometryMatrix3`, `Point3`, `Vector2`, `Vector4`
[INFO] [stdout]  --> src/utils.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | use na::{IsometryMatrix3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^           ^^^^^^  ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/utils.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DirEntry`
[INFO] [stdout]    --> src/utils.rs:134:21
[INFO] [stdout]     |
[INFO] [stdout] 134 | use std::fs::{self, DirEntry};
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]    --> src/utils.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | use std::io;
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]    --> src/utils.rs:136:17
[INFO] [stdout]     |
[INFO] [stdout] 136 | use std::path::{Path, PathBuf};
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt`
[INFO] [stdout]    --> src/utils.rs:177:25
[INFO] [stdout]     |
[INFO] [stdout] 177 |         use byteorder::{BigEndian, ReadBytesExt};
[INFO] [stdout]     |                         ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/unit_editor.rs:227:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/unit_editor.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/heightmap_editor.rs:327:13
[INFO] [stdout]     |
[INFO] [stdout] 327 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/client/render.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 _ => {
[INFO] [stdout]    |                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_server`
[INFO] [stdout]   --> src/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let frame_server =
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_server`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manager`
[INFO] [stdout]   --> src/main.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let manager = manager::Manager::new(
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/client/unit_editor.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     id,
[INFO] [stdout]     |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius`
[INFO] [stdout]    --> src/client/unit_editor.rs:106:21
[INFO] [stdout]     |
[INFO] [stdout] 106 |                     radius,
[INFO] [stdout]     |                     ^^^^^^ help: try ignoring the field: `radius: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metal_cost`
[INFO] [stdout]    --> src/client/unit_editor.rs:115:21
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     metal_cost,
[INFO] [stdout]     |                     ^^^^^^^^^^ help: try ignoring the field: `metal_cost: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part_tree`
[INFO] [stdout]    --> src/client/unit_editor.rs:116:21
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     part_tree,
[INFO] [stdout]     |                     ^^^^^^^^^ help: try ignoring the field: `part_tree: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `deleter`
[INFO] [stdout]    --> src/client/unit_editor.rs:290:25
[INFO] [stdout]     |
[INFO] [stdout] 290 |                     let deleter = unit_editor.botdef.part_tree.remove_node(part_tree.id);
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_deleter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/client/unit_editor.rs:492:46
[INFO] [stdout]     |
[INFO] [stdout] 492 |                         ModelGpuState::Error(e) => {
[INFO] [stdout]     |                                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/client/unit_editor.rs:583:51
[INFO] [stdout]     |
[INFO] [stdout] 583 |                         Some(ModelGpuState::Error(e)) => {
[INFO] [stdout]     |                                                   ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoder`
[INFO] [stdout]    --> src/client/misc.rs:127:63
[INFO] [stdout]     |
[INFO] [stdout] 127 |     pub fn upload_to_gpu(&mut self, view_proj: &Matrix4<f32>, encoder: &mut wgpu::CommandEncoder) {
[INFO] [stdout]     |                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_sim_sec`
[INFO] [stdout]    --> src/client/play.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         delta_sim_sec: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_sim_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoder`
[INFO] [stdout]    --> src/client/play.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         encoder: &mut wgpu::CommandEncoder,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/client/render.rs:274:42
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   .filter(|(n, d)| *n != "frame_time")
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/client/render.rs:298:42
[INFO] [stdout]     |
[INFO] [stdout] 298 | ...                   .filter(|(n, d)| *n != "total")
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:45:21
[INFO] [stdout]    |
[INFO] [stdout] 45 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:54:21
[INFO] [stdout]    |
[INFO] [stdout] 54 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:82:21
[INFO] [stdout]    |
[INFO] [stdout] 82 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_be_built`
[INFO] [stdout]    --> src/client/render.rs:405:29
[INFO] [stdout]     |
[INFO] [stdout] 405 |                         let can_be_built: Vec<_> = self
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_be_built`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]    --> src/frame_server/mod.rs:598:9
[INFO] [stdout]     |
[INFO] [stdout] 598 |         to,
[INFO] [stdout]     |         ^^ help: try ignoring the field: `to: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/frame_server/mod.rs:600:9
[INFO] [stdout]     |
[INFO] [stdout] 600 |         from,
[INFO] [stdout]     |         ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resources_surplus`
[INFO] [stdout]    --> src/frame_server/mod.rs:650:13
[INFO] [stdout]     |
[INFO] [stdout] 650 |     let mut resources_surplus = FnvHashMap::<Id<Player>, ResourceSurplus>::default();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resources_surplus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/frame_server/mod.rs:654:9
[INFO] [stdout]     |
[INFO] [stdout] 654 |         from,
[INFO] [stdout]     |         ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrows`
[INFO] [stdout]    --> src/frame_server/mod.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |     arrows: &mut Vec<Arrow>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/frame_server/mod.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |                     id,
[INFO] [stdout]    |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/frame_server/mod.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     id,
[INFO] [stdout]     |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/gpu_obj/heightmap_gpu.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let start = std::time::Instant::now();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `update_left` is never read
[INFO] [stdout]    --> src/gpu_obj/heightmap_gpu.rs:774:13
[INFO] [stdout]     |
[INFO] [stdout] 774 |             update_left -= update_to_do;
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/post_fx.rs:144:50
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/post_fxaa.rs:151:50
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/texture_view_bicopy.rs:141:50
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vertex_size`
[INFO] [stdout]    --> src/gpu_obj/water.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let vertex_size = std::mem::size_of::<model::Vertex>();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vertex_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/heightmap_phy.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         for j in 0..height {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/heightmap_phy.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             for i in 0..width {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/manager.rs:89:79
[INFO] [stdout]    |
[INFO] [stdout] 89 | ...                   frame::FrameEventFromPlayer::ReplaceFrame(x) => false,
[INFO] [stdout]    |                                                                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/mobile.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let max = other + cone_angle;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/mobile.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let min = other - cone_angle;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/unit_editor.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let mut buf_w = BufWriter::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/unit_editor.rs:251:13
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let mut buf_r = BufReader::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/heightmap_editor.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |         let mut buf_w = BufWriter::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/play.rs:70:21
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 let mut moddef = crate::moddef::ModDef {
[INFO] [stdout]    |                     ----^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/render.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut generic_gpu = ModelGpu::new(
[INFO] [stdout]     |                     ----^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/render.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 let mut generic_gpu_state_new = unit_part_gpu::ModelGpuState::Ready(generic_gpu);
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frame_server/mod.rs:650:9
[INFO] [stdout]     |
[INFO] [stdout] 650 |     let mut resources_surplus = FnvHashMap::<Id<Player>, ResourceSurplus>::default();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `NEAR`
[INFO] [stdout]  --> src/client/camera.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NEAR: f32 = 1.0;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `path_get_mut`
[INFO] [stdout]   --> src/client/unit_part_gpu.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn path_get_mut(&mut self, path: PathBuf) -> Option<&mut ModelGpuState> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Move`
[INFO] [stdout]  --> src/client/uitool.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Move,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Guard`
[INFO] [stdout]  --> src/client/uitool.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Guard,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Attack`
[INFO] [stdout]   --> src/client/uitool.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Attack,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `watcher`
[INFO] [stdout]    --> src/client/mod.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 134 |     watcher: notify::RecommendedWatcher,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `energy`
[INFO] [stdout]    --> src/frame_server/mod.rs:616:9
[INFO] [stdout]     |
[INFO] [stdout] 616 |         energy: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `metal`
[INFO] [stdout]    --> src/frame_server/mod.rs:646:9
[INFO] [stdout]     |
[INFO] [stdout] 646 |         metal: f64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `energy`
[INFO] [stdout]    --> src/frame_server/mod.rs:647:9
[INFO] [stdout]     |
[INFO] [stdout] 647 |         energy: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `noise_texture`
[INFO] [stdout]   --> src/gpu_obj/blit_texture.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     noise_texture: Texture,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `str_to_shader_stage`
[INFO] [stdout]   --> src/gpu_obj/glsl_compiler.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn str_to_shader_stage(str: &str) -> ShaderStage {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `z`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `create_texels`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn create_texels(width: u32, height: u32, t: f32) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `update_instance`
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn update_instance(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `ID_CHARS`
[INFO] [stdout]   --> src/utils.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | / const ID_CHARS: [char; 62] = [
[INFO] [stdout] 29 | |     'A', 'Z', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'Q', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L',
[INFO] [stdout] 30 | |     'M', 'W', 'X', 'C', 'V', 'B', 'N', 'a', 'z', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'q', 's',
[INFO] [stdout] 31 | |     'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'w', 'x', 'c', 'v', 'b', 'n', '0', '1', '2', '3', '4',
[INFO] [stdout] 32 | |     '5', '6', '7', '8', '9',
[INFO] [stdout] 33 | | ];
[INFO] [stdout]    | |__^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `ID_SIZE`
[INFO] [stdout]   --> src/utils.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | const ID_SIZE: usize = 5;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `rand_id_unsafe`
[INFO] [stdout]    --> src/utils.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn rand_id_unsafe() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `pop_set`
[INFO] [stdout]    --> src/utils.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn pop_set<T: Clone + Eq + std::hash::Hash>(set: &mut HashSet<T>) -> T {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/mod.rs:863:13
[INFO] [stdout]     |
[INFO] [stdout] 863 |             std::mem::replace(to_update, Some(Vector3::new(vec[0], vec[1], vec[2])));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/mod.rs:865:13
[INFO] [stdout]     |
[INFO] [stdout] 865 |             std::mem::replace(to_update, None);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/client/unit_editor.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 237 |         serde_json::to_writer_pretty(buf_w, bot_def);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/client/heightmap_editor.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |         serde_json::to_writer_pretty(buf_w, &heightmap_gpu.phy.data);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/render.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 std::mem::replace(generic_gpu_state, generic_gpu_state_new);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/frame_server/mod.rs:275:9
[INFO] [stdout]     |
[INFO] [stdout] 275 |         std::mem::replace(grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/frame_server/mod.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |             std::mem::replace(small_grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/arrow_gpu.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/blit_texture.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/explosion.rs:353:9
[INFO] [stdout]     |
[INFO] [stdout] 353 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/health_bar.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/line.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/unit_icon.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/unit.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         std::mem::replace(self, next);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 155 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2m 53s
[INFO] running `Command { std: "docker" "inspect" "a511d1a2d7c7ab05f55831385408049d287addced0ded0c18d5d613bed7dfa66", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a511d1a2d7c7ab05f55831385408049d287addced0ded0c18d5d613bed7dfa66", kill_on_drop: false }`
[INFO] [stdout] a511d1a2d7c7ab05f55831385408049d287addced0ded0c18d5d613bed7dfa66
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ff34b919075f35a1787659e9c448a34b06bab8de" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2962c649e58af7414cdc7107f5f39a4183c9d3db73d2667cdccedd88383d18ef
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "2962c649e58af7414cdc7107f5f39a4183c9d3db73d2667cdccedd88383d18ef", kill_on_drop: false }`
[INFO] [stderr]    Compiling oxidator v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Vector4`
[INFO] [stdout]  --> src/client/mod.rs:3:56
[INFO] [stdout]   |
[INFO] [stdout] 3 | use na::{Isometry3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |                                                        ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::botdef`
[INFO] [stdout]  --> src/client/game_state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::botdef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/client/unit_part_gpu.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/client/unit_part_gpu.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model::*`
[INFO] [stdout]  --> src/client/unit_editor.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gpu_obj::model_gpu::ModelGpu`
[INFO] [stdout]  --> src/client/unit_editor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use gpu_obj::model_gpu::ModelGpu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2`
[INFO] [stdout]  --> src/client/unit_editor.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use na::{Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap`, `HashSet`
[INFO] [stdout]  --> src/client/unit_editor.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/client/unit_editor.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]    --> src/client/unit_editor.rs:228:23
[INFO] [stdout]     |
[INFO] [stdout] 228 |         use std::io::{BufReader, BufWriter};
[INFO] [stdout]     |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufWriter`
[INFO] [stdout]    --> src/client/unit_editor.rs:244:34
[INFO] [stdout]     |
[INFO] [stdout] 244 |         use std::io::{BufReader, BufWriter};
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]    --> src/client/heightmap_editor.rs:328:13
[INFO] [stdout]     |
[INFO] [stdout] 328 |         use std::io::BufReader;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/client/misc.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/client/misc.rs:159:25
[INFO] [stdout]     |
[INFO] [stdout] 159 |                         (t * 2.0),
[INFO] [stdout]     |                         ^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::botdef`
[INFO] [stdout]  --> src/client/play.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::botdef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `imgui::*`
[INFO] [stdout]  --> src/client/play.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use imgui::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Isometry3`, `Vector2`, `Vector4`
[INFO] [stdout]  --> src/client/play.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | use na::{Isometry3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^                   ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration`, `Instant`
[INFO] [stdout]   --> src/client/play.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::frame::Player`
[INFO] [stdout]  --> src/client/render.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::frame::Player;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IsometryMatrix3`, `Matrix4`, `Vector2`, `Vector4`
[INFO] [stdout]  --> src/client/render.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | use na::{IsometryMatrix3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^  ^^^^^^^          ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/client/render.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unit_part_gpu::UnitPartGpu`
[INFO] [stdout]   --> src/client/render.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use unit_part_gpu::UnitPartGpu;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/client/mod.rs:34:24
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> src/client/mod.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/client/mod.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferMapAsyncResult`, `Extent3d`, `SwapChain`
[INFO] [stdout]   --> src/client/mod.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | use wgpu::{BufferMapAsyncResult, Extent3d, SwapChain, TextureFormat};
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/client/mod.rs:154:10
[INFO] [stdout]     |
[INFO] [stdout] 154 |     ) -> (Self) {
[INFO] [stdout]     |          ^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `unbounded` is imported redundantly
[INFO] [stdout]    --> src/client/mod.rs:436:17
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::*;
[INFO] [stdout]     |     -------- the item `unbounded` is already imported here
[INFO] [stdout] ...
[INFO] [stdout] 436 |             use crossbeam_channel::unbounded;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]    --> src/client/mod.rs:437:50
[INFO] [stdout]     |
[INFO] [stdout] 437 |             use notify::{watcher, RecursiveMode, Result};
[INFO] [stdout]     |                                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/client/mod.rs:608:9
[INFO] [stdout]     |
[INFO] [stdout] 608 |         (this)
[INFO] [stdout]     |         ^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/client/mod.rs:927:25
[INFO] [stdout]     |
[INFO] [stdout] 927 |                     for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Point3`
[INFO] [stdout]   --> src/frame.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | use na::{Point3, Vector3};
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]   --> src/frame.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::unit;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4`
[INFO] [stdout]  --> src/frame_server/mod.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | use na::{Matrix4, Point3, Vector2, Vector3};
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/frame_server/mod.rs:393:25
[INFO] [stdout]     |
[INFO] [stdout] 393 |                         'bot_test: for kbot_id in kbots_in_proximity.iter() {
[INFO] [stdout]     |                         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/frame_server/mod.rs:452:10
[INFO] [stdout]     |
[INFO] [stdout] 452 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]  --> src/glsl.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::slice;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/arrow_gpu.rs:45:95
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/blit_texture.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/explosion.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt`
[INFO] [stdout]    --> src/gpu_obj/explosion.rs:312:25
[INFO] [stdout]     |
[INFO] [stdout] 312 |         use byteorder::{BigEndian, ReadBytesExt};
[INFO] [stdout]     |                         ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]   --> src/gpu_obj/glsl_compiler.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::slice;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/health_bar.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/line.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/line.rs:29:95
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/model_gpu.rs:46:95
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BindGroup`, `RenderPass`
[INFO] [stdout]  --> src/gpu_obj/trait_gpu.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use wgpu::{BindGroup, BindGroupLayout, RenderPass, TextureFormat};
[INFO] [stdout]   |            ^^^^^^^^^                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/unit_icon.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/unit_icon.rs:29:95
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/water.rs:62:27
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 .unwrap();;
[INFO] [stdout]    |                           ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]  --> src/mobile.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::unit;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf`, `Path`
[INFO] [stdout]  --> src/mobile.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/mobile.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let diff = (other - self);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]  --> src/moddef.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::unit;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]  --> src/net_client.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]  --> src/net_client.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::BufReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpListener`
[INFO] [stdout]  --> src/net_client.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::TcpListener;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::client::*`
[INFO] [stdout]  --> src/unit.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::client::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model::*`
[INFO] [stdout]  --> src/unit.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::FileTree`
[INFO] [stdout]  --> src/unit.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::FileTree;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gpu_obj::model_gpu::ModelGpu`
[INFO] [stdout]  --> src/unit.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use gpu_obj::model_gpu::ModelGpu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vector2`, `Vector3`
[INFO] [stdout]  --> src/unit.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use na::{Matrix4, Point3, Vector2, Vector3};
[INFO] [stdout]   |                           ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap`, `HashSet`
[INFO] [stdout]  --> src/unit.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/unit.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IsometryMatrix3`, `Point3`, `Vector2`, `Vector4`
[INFO] [stdout]  --> src/utils.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | use na::{IsometryMatrix3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^           ^^^^^^  ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/utils.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DirEntry`
[INFO] [stdout]    --> src/utils.rs:134:21
[INFO] [stdout]     |
[INFO] [stdout] 134 | use std::fs::{self, DirEntry};
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]    --> src/utils.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | use std::io;
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]    --> src/utils.rs:136:17
[INFO] [stdout]     |
[INFO] [stdout] 136 | use std::path::{Path, PathBuf};
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian`, `ReadBytesExt`
[INFO] [stdout]    --> src/utils.rs:177:25
[INFO] [stdout]     |
[INFO] [stdout] 177 |         use byteorder::{BigEndian, ReadBytesExt};
[INFO] [stdout]     |                         ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/unit_editor.rs:227:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/unit_editor.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/heightmap_editor.rs:327:13
[INFO] [stdout]     |
[INFO] [stdout] 327 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/client/render.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 _ => {
[INFO] [stdout]    |                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_server`
[INFO] [stdout]   --> src/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let frame_server =
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_server`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manager`
[INFO] [stdout]   --> src/main.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let manager = manager::Manager::new(
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/client/unit_editor.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     id,
[INFO] [stdout]     |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius`
[INFO] [stdout]    --> src/client/unit_editor.rs:106:21
[INFO] [stdout]     |
[INFO] [stdout] 106 |                     radius,
[INFO] [stdout]     |                     ^^^^^^ help: try ignoring the field: `radius: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metal_cost`
[INFO] [stdout]    --> src/client/unit_editor.rs:115:21
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     metal_cost,
[INFO] [stdout]     |                     ^^^^^^^^^^ help: try ignoring the field: `metal_cost: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part_tree`
[INFO] [stdout]    --> src/client/unit_editor.rs:116:21
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     part_tree,
[INFO] [stdout]     |                     ^^^^^^^^^ help: try ignoring the field: `part_tree: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `deleter`
[INFO] [stdout]    --> src/client/unit_editor.rs:290:25
[INFO] [stdout]     |
[INFO] [stdout] 290 |                     let deleter = unit_editor.botdef.part_tree.remove_node(part_tree.id);
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_deleter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/client/unit_editor.rs:492:46
[INFO] [stdout]     |
[INFO] [stdout] 492 |                         ModelGpuState::Error(e) => {
[INFO] [stdout]     |                                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/client/unit_editor.rs:583:51
[INFO] [stdout]     |
[INFO] [stdout] 583 |                         Some(ModelGpuState::Error(e)) => {
[INFO] [stdout]     |                                                   ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoder`
[INFO] [stdout]    --> src/client/misc.rs:127:63
[INFO] [stdout]     |
[INFO] [stdout] 127 |     pub fn upload_to_gpu(&mut self, view_proj: &Matrix4<f32>, encoder: &mut wgpu::CommandEncoder) {
[INFO] [stdout]     |                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_sim_sec`
[INFO] [stdout]    --> src/client/play.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         delta_sim_sec: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_sim_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoder`
[INFO] [stdout]    --> src/client/play.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         encoder: &mut wgpu::CommandEncoder,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/client/render.rs:274:42
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   .filter(|(n, d)| *n != "frame_time")
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/client/render.rs:298:42
[INFO] [stdout]     |
[INFO] [stdout] 298 | ...                   .filter(|(n, d)| *n != "total")
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:45:21
[INFO] [stdout]    |
[INFO] [stdout] 45 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:54:21
[INFO] [stdout]    |
[INFO] [stdout] 54 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:82:21
[INFO] [stdout]    |
[INFO] [stdout] 82 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_be_built`
[INFO] [stdout]    --> src/client/render.rs:405:29
[INFO] [stdout]     |
[INFO] [stdout] 405 |                         let can_be_built: Vec<_> = self
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_be_built`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]    --> src/frame_server/mod.rs:598:9
[INFO] [stdout]     |
[INFO] [stdout] 598 |         to,
[INFO] [stdout]     |         ^^ help: try ignoring the field: `to: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/frame_server/mod.rs:600:9
[INFO] [stdout]     |
[INFO] [stdout] 600 |         from,
[INFO] [stdout]     |         ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resources_surplus`
[INFO] [stdout]    --> src/frame_server/mod.rs:650:13
[INFO] [stdout]     |
[INFO] [stdout] 650 |     let mut resources_surplus = FnvHashMap::<Id<Player>, ResourceSurplus>::default();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resources_surplus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/frame_server/mod.rs:654:9
[INFO] [stdout]     |
[INFO] [stdout] 654 |         from,
[INFO] [stdout]     |         ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrows`
[INFO] [stdout]    --> src/frame_server/mod.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |     arrows: &mut Vec<Arrow>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/frame_server/mod.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |                     id,
[INFO] [stdout]    |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/frame_server/mod.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     id,
[INFO] [stdout]     |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/gpu_obj/heightmap_gpu.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let start = std::time::Instant::now();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `update_left` is never read
[INFO] [stdout]    --> src/gpu_obj/heightmap_gpu.rs:774:13
[INFO] [stdout]     |
[INFO] [stdout] 774 |             update_left -= update_to_do;
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/post_fx.rs:144:50
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/post_fxaa.rs:151:50
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/texture_view_bicopy.rs:141:50
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vertex_size`
[INFO] [stdout]    --> src/gpu_obj/water.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let vertex_size = std::mem::size_of::<model::Vertex>();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vertex_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/heightmap_phy.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         for j in 0..height {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/heightmap_phy.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             for i in 0..width {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/manager.rs:89:79
[INFO] [stdout]    |
[INFO] [stdout] 89 | ...                   frame::FrameEventFromPlayer::ReplaceFrame(x) => false,
[INFO] [stdout]    |                                                                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/mobile.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let max = other + cone_angle;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/mobile.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let min = other - cone_angle;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/unit_editor.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let mut buf_w = BufWriter::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/unit_editor.rs:251:13
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let mut buf_r = BufReader::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/heightmap_editor.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |         let mut buf_w = BufWriter::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/play.rs:70:21
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 let mut moddef = crate::moddef::ModDef {
[INFO] [stdout]    |                     ----^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/render.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut generic_gpu = ModelGpu::new(
[INFO] [stdout]     |                     ----^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/render.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 let mut generic_gpu_state_new = unit_part_gpu::ModelGpuState::Ready(generic_gpu);
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frame_server/mod.rs:650:9
[INFO] [stdout]     |
[INFO] [stdout] 650 |     let mut resources_surplus = FnvHashMap::<Id<Player>, ResourceSurplus>::default();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `NEAR`
[INFO] [stdout]  --> src/client/camera.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NEAR: f32 = 1.0;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `path_get_mut`
[INFO] [stdout]   --> src/client/unit_part_gpu.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn path_get_mut(&mut self, path: PathBuf) -> Option<&mut ModelGpuState> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Move`
[INFO] [stdout]  --> src/client/uitool.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Move,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Guard`
[INFO] [stdout]  --> src/client/uitool.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Guard,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Attack`
[INFO] [stdout]   --> src/client/uitool.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Attack,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `watcher`
[INFO] [stdout]    --> src/client/mod.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 134 |     watcher: notify::RecommendedWatcher,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `energy`
[INFO] [stdout]    --> src/frame_server/mod.rs:616:9
[INFO] [stdout]     |
[INFO] [stdout] 616 |         energy: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `metal`
[INFO] [stdout]    --> src/frame_server/mod.rs:646:9
[INFO] [stdout]     |
[INFO] [stdout] 646 |         metal: f64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `energy`
[INFO] [stdout]    --> src/frame_server/mod.rs:647:9
[INFO] [stdout]     |
[INFO] [stdout] 647 |         energy: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `noise_texture`
[INFO] [stdout]   --> src/gpu_obj/blit_texture.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     noise_texture: Texture,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `str_to_shader_stage`
[INFO] [stdout]   --> src/gpu_obj/glsl_compiler.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn str_to_shader_stage(str: &str) -> ShaderStage {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `z`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `create_texels`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn create_texels(width: u32, height: u32, t: f32) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `update_instance`
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn update_instance(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `ID_CHARS`
[INFO] [stdout]   --> src/utils.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | / const ID_CHARS: [char; 62] = [
[INFO] [stdout] 29 | |     'A', 'Z', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'Q', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L',
[INFO] [stdout] 30 | |     'M', 'W', 'X', 'C', 'V', 'B', 'N', 'a', 'z', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'q', 's',
[INFO] [stdout] 31 | |     'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'w', 'x', 'c', 'v', 'b', 'n', '0', '1', '2', '3', '4',
[INFO] [stdout] 32 | |     '5', '6', '7', '8', '9',
[INFO] [stdout] 33 | | ];
[INFO] [stdout]    | |__^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `ID_SIZE`
[INFO] [stdout]   --> src/utils.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | const ID_SIZE: usize = 5;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `rand_id_unsafe`
[INFO] [stdout]    --> src/utils.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn rand_id_unsafe() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `pop_set`
[INFO] [stdout]    --> src/utils.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn pop_set<T: Clone + Eq + std::hash::Hash>(set: &mut HashSet<T>) -> T {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/mod.rs:863:13
[INFO] [stdout]     |
[INFO] [stdout] 863 |             std::mem::replace(to_update, Some(Vector3::new(vec[0], vec[1], vec[2])));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/mod.rs:865:13
[INFO] [stdout]     |
[INFO] [stdout] 865 |             std::mem::replace(to_update, None);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/client/unit_editor.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 237 |         serde_json::to_writer_pretty(buf_w, bot_def);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/client/heightmap_editor.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |         serde_json::to_writer_pretty(buf_w, &heightmap_gpu.phy.data);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/render.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 std::mem::replace(generic_gpu_state, generic_gpu_state_new);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/frame_server/mod.rs:275:9
[INFO] [stdout]     |
[INFO] [stdout] 275 |         std::mem::replace(grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/frame_server/mod.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |             std::mem::replace(small_grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/arrow_gpu.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/blit_texture.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/explosion.rs:353:9
[INFO] [stdout]     |
[INFO] [stdout] 353 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/health_bar.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/line.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/unit_icon.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/unit.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         std::mem::replace(self, next);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 155 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 5.79s
[INFO] running `Command { std: "docker" "inspect" "2962c649e58af7414cdc7107f5f39a4183c9d3db73d2667cdccedd88383d18ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2962c649e58af7414cdc7107f5f39a4183c9d3db73d2667cdccedd88383d18ef", kill_on_drop: false }`
[INFO] [stdout] 2962c649e58af7414cdc7107f5f39a4183c9d3db73d2667cdccedd88383d18ef
